package com.claimSettlement.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.claimSettlement.pojo.Warranty;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 保单Mapper接口
 * 汤英杰
 */
public interface WarrantyMapper extends BaseMapper<Warranty> {
    /**
     * 查询所有保单信息
     * @return
     */
    List<Warranty> getWarrantyAll();
    /**
     * 修改状态
     * @param warrantyState 保单状态
     * @param warrantyId 保单编号
     * @return
     */
    int updWarrantyState(@Param("warrantyState") String warrantyState,@Param("warrantyId") String warrantyId);

    /**
     * 添加保单信息
     * @param warranty 保单对象
     * @return
     */
    int addWarranty(Warranty warranty);

    /**
     * 修改保单信息
     * @param warranty 保单对象
     * @return
     */
    int updateWarranty(Warranty warranty);

    /**
     * 根据保单号查询
     * @param warrantyId 保单号
     * @return
     */
    Warranty getWarrantyOne(@Param("warrantyId") String warrantyId);

    /**
     * 模糊查询保单
     * @param warrantyId 保单号
     * @param recognizeeName 被保人
     * @param plateNumber 车牌号
     * @param frameId 车架号
     * @return
     */
    List<Warranty> getWarrantyId(@Param("warrantyId") String warrantyId,@Param("recognizeeName") String recognizeeName,@Param("plateNumber") String plateNumber,@Param("frameId") String frameId);

    /**
     * 保单流水号+1
     * @return
     */
    int updateNum2();

    /**
     * 查询保单的流水号
     * @return
     */
    String getLius();

    /**
     * 查询最新的一条保单编号
     * @return
     */
    String getWarrantyNow();

    /**
     * 根据保单编号查询该编号所投的险别编号
     * @param warrantyId 保单编号
     * @return
     */
    List<Integer> selectRisk(@Param("warrantyId") String warrantyId);

    /**
     * 添加投保险别表
     * @param warrantyId 保单编号
     * @param riskTypeId 险别编号
     * @return
     */
    int insertInsure(@Param("warrantyId") String warrantyId,@Param("riskTypeId") int riskTypeId);

    /**
     * 修改保单信息总额
     * @param premiumTotal 总额
     * @param warrantyId 保单编号
     * @return
     */
    int updatePremiumTotal(@Param("premiumTotal") double premiumTotal,@Param("warrantyId") String warrantyId);

    /**
     * 根据报案编号查询车牌号
     * @param caseId 报案编号
     * @return 车牌号集合
     */
    List<String> getCaseChepai(String caseId);

    /**
     * 根据被保人编号和车牌号查询保单记录数
     * @param recognizeeId 被保人编号
     * @param plateNumber  车牌号
     * @return
     */
    int getWarrantyCount(@Param("recognizeeId") String recognizeeId,@Param("plateNumber") String plateNumber);

    /**
     * 查询所有已经超过七天的保单信息
     * @return
     */
    List<Warranty> getWarrantyAll2();
}
